// pages/goods_detail/goods_detail.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        hideCertainDialog: true,
        id:"",
        detailData: {},
        isCustomerObj: { //是否为销售对象
            isCustomer: false,
            tips: ""
        },
        allowQuote: false,
        quoteAmount: "", //报量数量
        countTotalPrice: "", //报量总价
        beginStatus: "", //开始/进行中/结束
        leftTime: "", //倒计时时间
        countDownTimer: null, //倒计时定时器
        quoteRecord: {},
        ts: 0, //倒计时时间差
        hideRecord: true,
        startEndTimeText: "",//起止时间
        slideWidth:'',//滑块宽
        slideLeft:0 ,//滑块位置
        slideRatio:'',
        windowWidth:'',
    },

    /**
     * 生命周期函数--监听页面加载
     */
    async onLoad(options) {
        wx.showLoading({
            title: '加载中',
            mask: true
        })
        console.log("重新执行onload")
        this.setData({
            id: options.id
        })
        await this.getInitData();
        wx.hideLoading()

        var self = this ;
        var systemInfo = wx.getSystemInfoSync() ;
        self.setData({
            windowWidth:systemInfo.windowWidth
        });
        self.getRatio();
    },
    //根据分类获取比例
    getRatio(){
        var self = this ;
        var _totalLength = self.data.detailData.mall_pic_list.length * 1500; //分类列表总长度
        var _ratio = 230 / (this.data.windowWidth*self.data.detailData.mall_pic_list.length); //滚动列表长度与滑条长度比例
        var _showLength = 230/self.data.detailData.mall_pic_list.length; //当前显示红色滑条的长度(保留两位小数)
        // var _ratio = 230 / _totalLength * (750 / this.data.windowWidth);
        // var _showLength = 750 / _totalLength * 230;
        this.setData({
            slideWidth: _showLength,
            totalLength: _totalLength,
            slideRatio:_ratio
        })
    } ,
    getleft:function(e){
        this.setData({
            slideLeft: e.detail.scrollLeft * this.data.slideRatio
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
        
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {
        clearInterval(this.data.countDownTimer);
        this.setData({countDownTimer: null});
    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {
        console.log("下拉下拉下楼")
        this.getInitData();
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {
        wx.showShareMenu({
          menus: ['shareAppMessage','shareTimeline'],
          title:"中华石化网"
        })
    },
    /**
     * 分享到朋友圈
     */
    onShareTimeline(){
        return {
            title:"中华石化网"
        }
    },
    /**
     * 点击报量
     */
    dealQuote(){
        if(!this.data.allowQuote) return
        this.setData({ //总价暂时跟后端保持一致，不算阶梯价格
            countTotalPrice: this.data.quoteAmount * this.data.detailData.price
        })
        this.setData({
            hideCertainDialog: false
        })
    },
    /**
     * 关闭报量弹窗
     */
    cancelCertain(){
        this.setData({
            hideCertainDialog: true
        })
    },
    /**
     * 确定报价
     */
    certainQuote(){
        if(this.data.quoteAmount==0 || this.data.quoteAmount===""){
            wx.showToast({
              title: '数量不能为空',
              icon:"error"
            })
            return
        }
        wx.showLoading({
            title: '加载中',
            mask: true
        })
        getApp().network.POST({
            url: "/new/mall/bidAmount",
            params: {
                id: this.data.id,
                amount: this.data.quoteAmount
            },
            success: (res)=>{
                wx.hideLoading()
                if(res.data.code === 0){
                    this.setData({
                        hideCertainDialog: true
                    })
                    wx.showToast({
                        title: "报量成功",
                        icon: 'success'
                    })
                    this.getInitData();
                }else{
                    wx.showToast({
                        title: res.data.msg,
                        icon: 'none'
                    })
                }
            },
            fail: (err)=>{
                console.log(err)
            }
        })
    },
    /**
     * 请求接口获取页面数据
     */
    getInitData(){
        return new Promise( (resolve)=>{
            getApp().network.GET({
                url:"/new/mall/detail",
                params:{
                    id:this.data.id
                },
                success: async (res)=>{
                    if(res.data.code === 0){
                        var nowTime = await getApp().getServeTime();
                        var tempData = res.data.data;
                        tempData.price_first = tempData.price.split(".")[0];
                        tempData.price_second = tempData.price.split(".")[1];
                        //判断是否结束
                        if(nowTime < tempData.start_time){
                            this.setData({
                                beginStatus:"未开始",
                                ts: tempData.start_time - nowTime + 1
                            })
                            this.countDownFun();
                        }else if(nowTime >= tempData.start_time && nowTime< tempData.end_time){
                            this.setData({
                                beginStatus:"进行中",
                                ts: tempData.end_time - nowTime + 1
                            })
                            this.countDownFun();
                        }else if(nowTime >= tempData.end_time){
                            this.setData({beginStatus:"已结束"})
                        }
                        if(tempData.mall_pic_list.length === 0){
                            tempData.mall_pic_list = ['../../img/noPic.png'];
                        }
                        this.setData({
                            detailData: tempData,
                            startEndTimeText: this.formatTime(tempData.start_time) + " ~ " + this.formatTime(tempData.end_time)
                        })
                        resolve();
                        this.dealQuoteRecord();
                        //判断是否销售对象
                        await this.judgeCustomer(res.data.data.mall_limit)
                        //判断是否允许报量
                        if(this.data.beginStatus === "进行中" && this.data.isCustomerObj.isCustomer && this.data.detailData.remain_amount>0){
                            this.setData({
                                allowQuote: true
                            })
                        }else{
                            this.setData({
                                allowQuote: false  
                                // allowQuote: true //测试用
                            })
                        }
                    }
                    wx.stopPullDownRefresh()
                },
                fail(err){
                    console.log(err)
                }
            })
        })
    },
    /**
     * 判断是否销售对象
     */
    judgeCustomer(type){
        return new Promise( resolve=>{
            if(type == 1){ //仅保证金客户
                getApp().network.GET({
                    url:"/new/mall/checkMargin",
                    params: {
                        id: this.data.id
                    },
                    success: (res)=>{
                        if(res.data.code === 0){
                            if(res.data.data.status == 2){
                                this.setData({
                                    isCustomerObj:{
                                        isCustomer: true,
                                        tips:"您是保证金客户"
                                    }
                                })
                            }else if(res.data.data.status == -1){
                                this.setData({
                                    isCustomerObj:{
                                        isCustomer: false,
                                        tips:"您还不是该场活动的保证金用户，无法参与报量，请联系发布该场活动的供应商缴纳保证金，并前往中华石化网官网该场活动进行保证金缴纳截图上传，待审批通过后即可参与。"
                                    }
                                })
                            }else if(res.data.data.status == 9){
                                this.setData({
                                    isCustomerObj:{
                                        isCustomer: false,
                                        tips:"您的保证金已退款"
                                    }
                                })
                            }else if(res.data.data.status == 0){
                                this.setData({
                                    isCustomerObj:{
                                        isCustomer: false,
                                        tips:"您缴纳的保证金正在审核中，请耐心等待，或联系供应商进行及时审核。"
                                    }
                                })
                            }
                            resolve();
                        }else if(res.data.code === 503){
                            this.setData({
                                isCustomerObj:{
                                    isCustomer: false,
                                    tips:"你还未登录，请登录后参与活动"
                                }
                            })
                        }
                    },
                    fail: (err)=>{
                        console.log(err)
                    }
                })
            }else if(type == 2){ //仅授权客户
                getApp().network.GET({
                    url:"/new/mall/checkUserLimit",
                    params: {
                        id: this.data.id
                    },
                    success: (res)=>{
                        if(res.data.code === 0){
                            if(res.data.data.status == 1){
                                this.setData({
                                    isCustomerObj:{
                                        isCustomer: true,
                                        tips:"您是授权客户"
                                    }
                                })
                            }else if(res.data.data.status == 0){
                                this.setData({
                                    isCustomerObj:{
                                        isCustomer: false,
                                        tips:"您还不是该场活动的授权客户，无法参与报量，请联系发布该场活动的供应商给您进行授权，授权通过后即可参与报量。"
                                    }
                                })
                            }
                            resolve();
                        }else if(res.data.code === 503){
                            this.setData({
                                isCustomerObj:{
                                    isCustomer: false,
                                    tips:"你还未登录，请登录后参与活动"
                                }
                            })
                        }
                    },
                    fail: (err)=>{
                        console.log(err)
                    }
                })
            }else if(type == 0){ //保证金和授权客户
                getApp().network.GET({
                    url:"/new/mall/checkUserLimit",
                    params: {
                        id: this.data.id
                    },
                    success: (res)=>{
                        if(res.data.code === 0){
                            if(res.data.data.status == 1){
                                this.setData({
                                    isCustomerObj:{
                                        isCustomer: true,
                                        tips:"您是授权客户"
                                    }
                                })
                                resolve();
                            }else if(res.data.data.status == 0){
                                getApp().network.GET({
                                    url:"/new/mall/checkMargin",
                                    params: {
                                        id: this.data.id
                                    },
                                    success: (response)=>{
                                        if(response.data.code === 0){
                                            if(response.data.data.status == 2){
                                                this.setData({
                                                    isCustomerObj:{
                                                        isCustomer: true,
                                                        tips:"您是保证金客户"
                                                    }
                                                })
                                            }else if(response.data.data.status == -1){
                                                this.setData({
                                                    isCustomerObj:{
                                                        isCustomer: false,
                                                        tips:"您还不是该场活动的保证金或授权客户，无法参与报量，请联系发布该场活动的供应商缴纳保证金或给您进行授权。"
                                                    }
                                                })
                                            }else if(response.data.data.status == 9){
                                                this.setData({
                                                    isCustomerObj:{
                                                        isCustomer: false,
                                                        tips:"您的保证金已退款"
                                                    }
                                                })
                                            }else if(response.data.data.status == 0){
                                                this.setData({
                                                    isCustomerObj:{
                                                        isCustomer: false,
                                                        tips:"您缴纳的保证金正在审核中，请耐心等待，或联系供应商进行及时审核。"
                                                    }
                                                })
                                            }
                                            resolve();
                                        }else if(res.data.code === 503){
                                            this.setData({
                                                isCustomerObj:{
                                                    isCustomer: false,
                                                    tips:"你还未登录，请登录后参与活动"
                                                }
                                            })
                                        }
                                    },
                                    fail: (err)=>{
                                        console.log(err)
                                    }
                                })
                            }
                        }else if(res.data.code === 503){
                            this.setData({
                                isCustomerObj:{
                                    isCustomer: false,
                                    tips:"你还未登录，请登录后参与活动"
                                }
                            })
                        }
                    },
                    fail: (err)=>{
                        console.log(err)
                    }
                })
            }
        })
    },
    /**
     * 报价输入框数据同步
     */
    dealQuoteInput(e){
        this.setData({
            quoteAmount: e.detail.value.trim()
        })
    },
    /**
     * 倒计时定时器
     */
    counter(){
        this.setData({
            ts: this.data.ts -1
        })
        var dd = parseInt(this.data.ts  / 60 / 60 / 24, 10);//计算剩余的天数
        var hh = parseInt(this.data.ts  / 60 / 60 % 24, 10);//计算剩余的小时数
        var mm = parseInt(this.data.ts  / 60 % 60, 10);//计算剩余的分钟数
        var ss = parseInt(this.data.ts  % 60, 10);//计算剩余的秒数
        this.setData({
            leftTime: dd+"天"+hh+"时"+mm+"分"+ss+"秒"
        })
        //倒计时为零刷新页面  待改
        if(this.data.ts<=0){
            this.getInitData();
        }
        return this.counter;
    },
    /**
     * 倒计时函数
     */
    countDownFun(){
        clearInterval(this.data.countDownTimer);
        this.setData({countDownTimer: null});
        this.setData({
            countDownTimer: setInterval(this.counter(),1000)
        })
    },
    /**
     * 报量记录
     */
    dealQuoteRecord(){
        getApp().network.GET({
            url: "/new/mall/myBidAmountRecord",
            params: {
                id: this.data.id
            },
            success: (res)=>{
                if(res.data.code === 0){
                    if(res.data.data.length === 0){
                        this.setData({hideRecord: true})
                    }else{
                        this.setData({hideRecord: false})
                    }
                    var tempData = res.data.data;
                    tempData.total_price_first = (tempData.total_price+"").split(".")[0];
                    tempData.total_price_second = (tempData.total_price+"").split(".")[1]===undefined?"00":tempData.total_price.split(".")[1];
                    this.setData({quoteRecord: tempData})
                }
            },
            fail: (error)=>{
                console.log(err)
            }
        })
    },
    /**
     * 格式化时间戳为09-02 10：00：00格式
     */
    formatTime(num){
        var date = new Date((num+"000"-0) + 8*60*60*1000);
        // var YY = date.getFullYear();
        var MM = (date.getMonth()+1)<10 ? "0"+(date.getMonth()+1) : date.getMonth()+1;
        var DD = date.getDate()<10 ? "0"+date.getDate() : date.getDate();
        var hh = date.getHours()<10 ? "0"+date.getHours() : date.getHours();
        var mm = date.getMinutes()<10 ? "0"+date.getMinutes() : date.getMinutes();
        var ss = date.getSeconds()<10 ? "0"+date.getSeconds() : date.getSeconds();
        return MM+"-"+DD+" "+hh+":"+mm+":"+ss
    },
})